<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">

<head th:include="head :: htmlhead" th:with="title='协议生成管理'"></head>

<body>
<input id="version" th:value="${version}"  hidden="true">

<div class="grid-demo">
	<h1 align="center" style="color:#FF5722"  th:text="'当前使用的版本为'+${version}"> </h1>
</div>

<!-- <a href="/zproto/module/protoReverseLoad"><p align="center">尝试反向加载</p></a> -->

<table id="modules" lay-filter="test"></table> 
<!-- <lable th:text="${dbType}"></lable> -->
<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-xs" lay-event="view">预览协议</a>
    <a class="layui-btn layui-btn-xs" lay-event="edit">编辑协议</a>
	<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="svn">svn<i class="layui-icon layui-icon-down"></i></a>
	<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="codeOpt">代码<i class="layui-icon layui-icon-down"></i></a>
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="createMessage">生成协议<i class="layui-icon layui-icon-down"></i></a>
	<a th:if="${dbType==2}" class="layui-btn layui-btn-xs" lay-event="editBeanInfo">编辑数据源</a>
</script>

<script type="text/javascript"  th:inline="none">
    layui.use(['table'], function(){
        var table = layui.table
        ,dropdown = layui.dropdown//下拉菜单
        
        var version=$("#version").val();
        //第一个实例
        table.render({
            elem: '#modules',
            //height: 500,
            url: '/zproto/module/moduleList?version='+version, //数据接口
            page: true ,//开启分页
            toolbar: 'default',
            totalRow: true, //开启合计行
            cols: [[ //表头
            	{fixed: 'left', type: 'checkbox'}
                ,{field: 'id', title: '模块id', width:80, sort: true}
                ,{field: 'name', title: '模块名', width:120}
                ,{field: 'endPoints', title: '终端', width:80}
                ,{field: 'comment', title: '注释', width:120}
                ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:500}
            ]]
        });

        //监听工具条
        table.on('tool(test)', function(obj){ //注：tool 是工具条事件名，test 是 table 原始容器的属性 lay-filter="对应的值"
            var data = obj.data; //获得当前行数据
            var layEvent = obj.event; //获得 lay-event 对应的值（也可以是表头的 event 参数对应的值）
            var tr = obj.tr; //获得当前行 tr 的 DOM 对象（如果有的话）
            if(layEvent === 'del'){ //删除
                layer.confirm('真的删除行么', function(index){
                    layer.close(index);
                    $.ajax({
                        type: 'GET',
                        url: '/zproto/module/deleteModule',
                        dataType:"json", //返回格式为json
                        data:{"id":data.id,"version":version}, //参数值
                        contentType: 'application/x-www-form-urlencoded',
                        success: function(data){
                            if(data.code==0){
                                obj.del(); //删除对应行（tr）的DOM结构，并更新缓存
                                layer.alert("删除成功！");
                            }else{
                                layer.alert("删除失败！");
                            }
                        },
                        error: function(jqXHR){console.log(jqXHR)},
                    });
                    //向服务端发送删除指令
                });
            } else if(layEvent === 'edit'){ //编辑协议
                //同步更新缓存对应的值
                window.location.href = "/zproto/module/protoEditView?id="+data.id+"&version="+version;
            }  else if(layEvent === 'view'){ //预览协议
                //同步更新缓存对应的值
                window.location.href = "/zproto/module/protoListView?id="+data.id+"&version="+version;
            }
            else if(layEvent === 'editModule'){ //编辑模块
                //同步更新缓存对应的值
                layer.open({
                    type: 2 //此处以iframe举例
                    ,title: '编辑模块'
                    ,area: ['600px', '500px']
                    ,shade: 0
                    ,maxmin: true
                    ,offset: [ //为了演示，随机坐标
                        0
                        ,0
                    ]
                    ,content:"/zproto/module/editModuleView?id="+data.id+"&version="+version
                    ,zIndex: layer.zIndex //重点1
                    ,success: function(layero){
                        layer.setTop(layero); //重点2
                    }
                });
            }else if(layEvent === 'downloadCode'){
            	window.location.href = "/zproto/module/downloadCode?id="+data.id+"&version="+version;
            }
//             else if(layEvent === 'createMessage'){ //生成协议
//                 //同步更新缓存对应的值
//                 $.ajax({
//                     type: 'GET',
//                     url: '/zproto/module/createMessage',
//                     dataType:"json", //返回格式为json
//                     data:{"id":data.id,"version":version,"langType":"java"}, //参数值
//                     contentType: 'application/x-www-form-urlencoded',
//                     success: function(data){
//                         if(data.code==0){
//                             layer.alert("生成成功！");
//                         }else{
//                             layer.alert("生成失败!");
//                         }
//                     },
//                     error: function(jqXHR){console.log(jqXHR)},
//                 });
//             }
		else if(layEvent === 'createCode'){ //生成协议
	         //同步更新缓存对应的值
	         $.ajax({
	             type: 'GET',
	             url: '/zproto/module/createCode',
	             dataType:"json", //返回格式为json
	             data:{"id":data.id,"version":version}, //参数值
	             contentType: 'application/x-www-form-urlencoded',
	             success: function(data){
	                 if(data.code==0){
	                     layer.alert("生成成功！");
	                 }else{
	                     layer.alert(data.tips);
	                 }
	             },
	             error: function(jqXHR){console.log(jqXHR)},
	         });
	     }
		else if(layEvent === 'svn'){
         	//下拉菜单
             dropdown.render({
               elem: this //触发事件的 DOM 对象
               ,show: true //外部事件触发即显示
               ,data: [{
             	  title: 'check out'
                   ,id: 'checkOut'
               },{
             	  title: 'update'
                   ,id: 'update'
               },{
              	  title: 'commit'
                      ,id: 'commit'
                  }]
               ,click: function(menudata){
            	 //同步更新缓存对应的值
                   $.ajax({
                       type: 'GET',
                       url: '/zproto/module/svn',
                       dataType:"json", //返回格式为json
                       data:{"id":data.id,"version":version,"opt":menudata.id}, //参数值
                       contentType: 'application/x-www-form-urlencoded',
                       success: function(ret){
                           if(ret.code==0){
                           	layer.alert(ret.tips);
                           }else{
                           	layer.alert(ret.tips);
                           }
                          
                       },
                       error: function(jqXHR){console.log(jqXHR)},
                   });
               }
               ,align: 'right' //右对齐弹出（v2.6.8 新增）
               ,style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
             })
         }
		 else if(layEvent === 'codeOpt'){
         	//下拉菜单
             dropdown.render({
               elem: this //触发事件的 DOM 对象
               ,show: true //外部事件触发即显示
               ,data: [{
             	  title: '生成'
                   ,id: 'createCode'
               },{
             	  title: '下载'
                   ,id: 'downloadCode'
               }]
               ,click: function(menudata){
            	   if(menudata.id === 'downloadCode'){
            		   window.location.href = "/zproto/module/downloadCode?id="+data.id+"&version="+version;
            	   }else{
            		 //同步更新缓存对应的值
                       $.ajax({
                           type: 'GET',
                           url: '/zproto/module/createCode',
                           dataType:"json", //返回格式为json
                           data:{"id":data.id,"version":version}, //参数值
                           contentType: 'application/x-www-form-urlencoded',
                           success: function(ret){
                        	   layer.alert(ret.tips);
                           },
                           error: function(jqXHR){console.log(jqXHR)},
                       });
            	   }
               }
               ,align: 'right' //右对齐弹出（v2.6.8 新增）
               ,style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
             })
         }
         else if(layEvent === 'createMessage'){
            	//下拉菜单
                dropdown.render({
                  elem: this //触发事件的 DOM 对象
                  ,show: true //外部事件触发即显示
                  ,data: [{
                	  title: 'All'
                     ,id: 'all'
                 },{
                	  title: 'C#'
                      ,id: 'csharp'
                  },{
                	  title: 'Java'
                      ,id: 'java'
                  },{
                	  title: 'JS'
                      ,id: 'js'
                  }]
                  ,click: function(menudata){
                  	//同步更新缓存对应的值
                    $.ajax({
                        type: 'GET',
                        url: '/zproto/module/createMessage',
                        dataType:"json", //返回格式为json
                        data:{"id":data.id,"version":version,"langType":menudata.id}, //参数值
                        contentType: 'application/x-www-form-urlencoded',
                        success: function(ret){
                            if(ret.code==0){
                            	layer.alert(ret.tips);
                            }else{
                            	layer.alert(ret.tips);
                            }
                        },
                        error: function(jqXHR){console.log(jqXHR)},
                    });
                  }
                  ,align: 'right' //右对齐弹出（v2.6.8 新增）
                  ,style: 'box-shadow: 1px 1px 10px rgb(0 0 0 / 12%);' //设置额外样式
                })
            }
         else if(layEvent === 'editBeanInfo'){
         	//编辑数据源
//         	layer.open({
//                  type: 2 //此处以iframe举例
//                  ,title: '编辑数据源'
//                  ,area: ['1024px', '768px']
//                  ,shade: 0
//                  ,maxmin: true
//                  ,offset: [ //为了演示，随机坐标
//                      0
//                      ,0
//                  ]
//                  ,content: '/zproto/module/editBeanInfoView?version='+version+'&id='+data.id
//                  ,zIndex: layer.zIndex //重点1
//                  ,success: function(layero){
//                      layer.setTop(layero); //重点2
//                  }
//              });
        	 	window.location.href = '/zproto/module/editBeanInfoView?version='+version+'&id='+data.id;
         	}
        });

        //监听头工具栏事件
        table.on('toolbar(test)', function(obj){
            var checkStatus = table.checkStatus(obj.config.id)
                ,data = checkStatus.data; //获取选中的数据
            switch(obj.event){
                case 'add':
                    layer.open({
                        type: 2 //此处以iframe举例
                        ,title: '新增模块'
                        ,area: ['800px', '500px']
                        ,shade: 0
                        ,maxmin: true
                        ,offset: [ //为了演示，随机坐标
                            0
                            ,0
                        ]
                        ,content: '/zproto/module/addModuleView?version='+version
                        ,zIndex: layer.zIndex //重点1
                        ,success: function(layero){
                            layer.setTop(layero); //重点2
                        }
                    });
                    break;
                case 'update':
                	console.log("checkStatus.data[0].id:"+checkStatus.data[0].id);
                    if(data.length === 0){
                      layer.msg('请选择一行');
                    } else if(data.length > 1){
                      layer.msg('只能同时编辑一个');
                    } else {
                    	//同步更新缓存对应的值
                        layer.open({
                            type: 2 //此处以iframe举例
                            ,title: '编辑模块'
                            ,area: ['800px', '500px']
                            ,shade: 0
                            ,maxmin: true
                            ,offset: [ //为了演示，随机坐标
                                0
                                ,0
                            ]
                            ,content:"/zproto/module/editModuleView?id="+checkStatus.data[0].id+"&version="+version
                            ,zIndex: layer.zIndex //重点1
                            ,success: function(layero){
                                layer.setTop(layero); //重点2
                            }
                        });
                    }
                  break;
                case 'delete':
                    if(data.length === 0){
                      layer.msg('请选择一行');
                    } else {
                    	var dels = [];
                    	data.forEach(function(n,i){
                    		dels.push(n.id);
                    	});
                    	layer.confirm('真的删除行么', function(index){
                            layer.close(index);
                            $.ajax({
                                type: 'get',
                                url: '/zproto/module/deleteModule',
                                dataType:"json", //返回格式为json
                                data:{ids:dels,version:version}, //参数值
                                contentType: 'application/x-www-form-urlencoded',
                                success: function(ret){
                                    if(ret.code==0){
                                        layer.alert("删除成功！");
                                        location.reload();//重新加载页面表格
                                    }else{
                                        layer.alert(ret.tips);
                                    }
                                },
                                error: function(jqXHR){console.log(jqXHR)},
                            });
                            //向服务端发送删除指令
                        });
                    }
                  break;
            };
        });
    });


    layui.use('form', function(){
        var form = layui.form;
        var version=$("#version").val();
        //监听提交
        form.on('submit(createEndPointFile)', function (data) {
            // var endPoints = new Array();
            // $("input[name='endPoints']:checked").each(function(i){//把所有被选中的複选框的值存入数组
            //     endPoints[i] =Number($(this).val());
            // });
            // $.ajax({
            //     url:"/createEndPointFile?version="+version,
            //     data:JSON.stringify(endPoints),
            //     type:"POST",
            //     dataType:"json",
            //     contentType: "application/json",
            //     success:function(msg){
            //         if(msg.code==0){
            //             layer.alert("生成成功！");
            //         }else{
            //             layer.alert("生成失败！");
            //         }
            //     },
            //     error:function(error){
            //         layer.alert("生成失败！");
            //     }
            // });
            layer.alert("暂时禁用！");
            return false;
        });
    });
</script>
</body>
</html>
